﻿#define _CRT_SECURE_NO_WARNINGS 1
//给定两个数组 nums1 和 nums2 ，返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。


int* intersection(int* nums1, int nums1Size, int* nums2, int nums2Size, int* returnSize) {
    int hash[1001] = { 0 }; // 假设数组元素范围在 [0, 1000]
    int count = 0;
    int* result = (int*)malloc(sizeof(int) * (nums1Size < nums2Size ? nums1Size : nums2Size));

    for (int i = 0; i < nums1Size; i++) {
        hash[nums1[i]] = 1;
    }

    for (int i = 0; i < nums2Size; i++) {
        if (hash[nums2[i]] == 1) {
            result[count++] = nums2[i];
            hash[nums2[i]] = 0;
        }
    }

    *returnSize = count;
    return result;
}